#define NUM_SIDE 6
#define NUM_SIZE 3
#define NUM_MOVE 12
#define MIB (1024 * 1024)
#define SIZE (MIB * 1024)

char cube[NUM_SIDE][NUM_SIZE][NUM_SIZE];
char color[NUM_SIDE];
char *name[NUM_SIDE];

enum {
	SIDE_UP = 0,
	SIDE_FRONT,
	SIDE_RIGHT,
	SIDE_BACK,
	SIDE_LEFT,
	SIDE_DOWN
};

void randomize();
int nextRandom(int m);
char *loadFile(char *fileName, int size);
int turnByteCode(char *byteCode);
void cubeInit();
void cubeRandomize();
void cubePrint();
int  cubeScore();
void turnClockwise(int side);
void turnCounterClockwise(int side);
inline void turnClockwiseSide(int side);
inline void turnCounterClockwiseSide(int side);
inline void turnClockwiseRows(int side);
inline void turnCounterClockwiseRows(int side);
